The present invention relates to a first-in, first-out data register whereupon read and write operations can be simultaneously performed.
A first-in, first-out (FIFO) register is basically a storage array for a series of data units such as bytes or words. The data units are placed in the register by writing to the register and are removed therefrom by reading from the register. Each data unit is removed from the register in the order of its placement relative to the remaining data units. Thus, the first data unit written to the register is the first data unit read from the register. Subsequent read operations remove data units which were added to the register immediately after the previously read data unit was added.
A FIFO register may be used in a variety of applications. One application is in the storage and retrieval of packets of digital information by a control unit. When storage is needed, the control unit checks to see if the FIFO register is full and, if not, adds data. Similarly, when retrieval is desired, the control unit checks to see that the FIFO register is empty and, if not, removes the data. In this application, only one control unit is involved and therefore simultaneous read and write operations are not encountered.
A different situation arises when two control units must store and retrieve data through the same FIFO register. One such application is the use of the FIFO register as a communication link between two control units. Conventional FIFO registers do not permit read and write operations to be performed simultaneously. If a read and a write operation are requested, one of the operation requests is generally required to wait for the other operation to complete. This results in inefficient use of the FIFO register and an increase in control unit processing costs.